package myzzyl.service;

import myzzyl.domain.dto.NursingPlanDto;
import myzzyl.domain.pojo.NursingPlan;
import com.baomidou.mybatisplus.extension.service.IService;
import myzzyl.domain.vo.NursingPlanVo;
import myzzyl.domain.vo.NursingPlanVo;
import myzzyl.response.PageResponse;

import java.util.List;

/**
* @author 33249
* @description 针对表【nursing_plan(护理计划表)】的数据库操作Service
* @createDate 2025-08-10 10:20:23
*/
public interface NursingPlanService extends IService<NursingPlan> {

    /**
     * 分页获取所有护理计划
     * @param name 护理计划名称
     * @param status 状态
     * @param pageNum 页码
     * @param pageSize 每页大小
     * @return 返回值
     */
    PageResponse<NursingPlanVo> getAll(String name, Integer status, Integer pageNum, Integer pageSize);

    /**
     * 获取护理计划详情
     * @param id 护理计划id
     * @return 返回值
     */
    NursingPlanVo getInfo(Integer id);

    /**
     * 新增护理计划
     * @param nursingPlanDto 护理计划表单请求包装类
     * @return 返回值
     */
    boolean add(NursingPlanDto nursingPlanDto);

    /**
     * 编辑护理计划
     * @param nursingPlanDto 护理计划表单请求包装类
     * @return 返回值
     */
    boolean edit(NursingPlanDto nursingPlanDto);

    /**
     * 删除护理计划
     * @param id 护理计划id
     * @return 返回值
     */
    boolean deleteNursingPlanById(Integer id);

    /**
     * 启用或禁用护理计划
     * @param id 护理计划id
     * @param status 需要更新的护理计划状态
     * @return 返回值
     */
    boolean enableOrDisableNursingPlan(Integer id, Integer status);

    /**
     * 获取所有护理计划
     * @return 返回值
     */
    List<NursingPlanVo> listAll();


}
